home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 9
/
FM Towns Free Software Collection 9.iso
/
t_os
/
data
/
fapx
/
fapxmail.plp
< prev
next >
Wrap
Text File
|
1994-11-16
|
11KB
|
500 lines
/************************************************************************
* 未読メールの処理 *
*************************************************************************/
/* Down all text of one mail */
/* 圧縮するモード */
%AllText{
loop ({
wait (Wtime2*5,{break;im({Yes})},
{\n\n},
{
MLcnt:=MLcnt-1;
write(TEMP2|{fapxmail.eml},CRLF);
receive(TEMP2|{fapxmail.eml});
wait (,,
{ 題名:},
{
wait (Wtime2,
{AbortOff(
{\nホストの反応が鈍いよぉ~\n})},
{\n},
{
%a @laststr(128);
%b @getchar(@getline
(a,@noline(a)-2),4,17);
case (b={ - P},
{Yes},
{
TITLE:={ }|@getchar(@getline(a,
@noline(a)-2),20,12)|
{ }|
@tail(a,{題名:},{\n});
},
{No},
{
TITLE:=b|{ }|
@tail(a,{題名:},{\n});
});
});
loop ({
wait (,,
{ E:終了)\n:},
{
%a @laststr;
wait(2);
%b @laststr;
case (a=b,
{No},{im({Yes})},
{Yes},
{
stoprec;
%file @nowfile2(TEMP2|
{fapxmail.eml},TEMP);
write(LOG2|{TITLE\NIFMAIL.TXT},
file|{ }|TITLE|{ \n});
delfile(TEMP2|{fapxmail.eml});
type({2\n});
im({No})
})
},
{NAPLPSのデコーダーが必要です。}|
{準備 (1:OK 2:NG) \n:},
{
type({1\n});wait(5);type({\n});
wait (,,
{ E:終了)\n:},
{
stoprec;
setcdir(CDIR);
dispoff(!DEBUG);
command({txl -npcut }|
{ -i }|TEMP2|{fapxmail.eml}|
{ -o }|TEMP2|{fapxmail.npb});
dispoff({No});
%file @nowfile2(TEMP2|
{fapxmail.npb},TEMP);
delfile(TEMP2|{fapxmail.eml});
delfile(TEMP2|{fapxmail.npb});
write(LOG2|{TITLE\NAPMAIL.TXT},
file|{ }|TITLE|{ \n});
type({2\n});
im({No})
});
},
{続き (改行で表示 E:終了)\n>},
{
%a @laststr;
wait(2);
%b @laststr;
case (a=b,
{No},{im({Yes})},
{Yes},{type({\n});im({Yes})});
},
{◆次頁はありません◆\n>},
{
%a @laststr;
wait(2);
%b @laststr;
case (a=b,
{No},{im({Yes})},
{Yes},{im({No})});
})
});
});
im({Yes});
},
{はバイナリーのため、表示出来ません◆\n},
{BMcnt:=BMcnt+1;MLcnt:=MLcnt-1;im({Yes})},
{続き (改行で表示 E:終了)\n>},
{
%a @laststr;
wait(2);
%b @laststr;
case (a=b,
{No},{im({Yes})},
{Yes},{type({\n});im({Yes})}
);
},
{◆次頁はありません◆\n>},
{
%a @laststr;
wait(2);
%b @laststr;
case(a=b,{No},{im({Yes})},{Yes},{im({No})});
},
{(1:受信 2:送信 3:送信簿 0:その他 E:終了)\n>},
{case(MLcnt>0,{Yes},{im({Yes})},{No},{im({No})})},
{E. 終了\n>},
{
%a @laststr;
wait(2);
%b @laststr;
case(a=b,{No},{im({Yes})},{Yes},{im({No})});
});
});
};
/* 圧縮しないモード */
%AllText2{
loop ({
wait (Wtime2*5,{break;im({Yes})},
{\n\n},
{
MLcnt:=MLcnt-1;
write(LOG2|{NIFMAIL\}|File,CRLF);
receive(LOG2|{NIFMAIL\}|File);
wait (,,
{ 題名:},
{
wait (Wtime2,
{AbortOff(
{\nホストの反応が鈍いよぉ~\n})},
{\n},
{
%a @laststr(128);
%b @getchar(@getline
(a,@noline(a)-2),4,17);
case (b={ - P},
{Yes},
{
TITLE:={ }|@getchar(@getline(a,
@noline(a)-2),20,12)|
{ }|
@tail(a,{題名:},{\n});
},
{No},
{
TITLE:=b|{ }|
@tail(a,{題名:},{\n});
});
});
loop ({
wait (,,
{ E:終了)\n:},
{
%a @laststr;
wait(2);
%b @laststr;
case (a=b,
{No},{im({Yes})},
{Yes},
{
stoprec;
write(LOG2|{NIFMAIL\TITLE.TXT},
File|{ }|TITLE|{ \n});
File:=@crefile(LOG2|{NIFMAIL},
{eml});
type({2\n});
im({No})
})
},
{NAPLPSのデコーダーが必要です。}|
{準備 (1:OK 2:NG) \n:},
{
stoprec;
delfile(LOG2|{NIFMAIL\}|File);
%File2 @crefile(TEMP,{NPB});
receive(TEMP2|File2);
type({1\n});wait(5);type({\n});
wait (,,
{ E:終了)\n:},
{
stoprec;
%File3 @crefile(LOG2|{NAPMAIL},
{NPB});
mkdir2(LOG2|{NAPMAIL});
setcdir(CDIR);
dispoff(!DEBUG);
command({txl -npcut}|{ -i }|
TEMP2|File2|{ -o }|
LOG2|{NAPMAIL\}|File3);
dispoff({No});
delfile(TEMP2|File2);
write(LOG2|{NAPMAIL\TITLE.TXT},
File3|{ }|TITLE|{ \n});
type({2\n});
im({No})
});
},
{続き (改行で表示 E:終了)\n>},
{
%a @laststr;
wait(2);
%b @laststr;
case (a=b,
{No},{im({Yes})},
{Yes},{type({\n});im({Yes})});
},
{◆次頁はありません◆\n>},
{
%a @laststr;
wait(2);
%b @laststr;
case (a=b,
{No},{im({Yes})},
{Yes},{im({No})});
})
});
});
im({Yes});
},
{はバイナリーのため、表示出来ません◆\n},
{BMcnt:=BMcnt+1;MLcnt:=MLcnt-1;im({Yes})},
{続き (改行で表示 E:終了)\n>},
{
%a @laststr;
wait(2);
%b @laststr;
case (a=b,
{No},{im({Yes})},
{Yes},{type({\n});im({Yes})}
);
},
{◆次頁はありません◆\n>},
{
%a @laststr;
wait(2);
%b @laststr;
case(a=b,{No},{im({Yes})},{Yes},{im({No})});
},
{(1:受信 2:送信 3:送信簿 0:その他 E:終了)\n>},
{case(MLcnt>0,{Yes},{im({Yes})},{No},{im({No})})},
{E. 終了\n>},
{
%a @laststr;
wait(2);
%b @laststr;
case(a=b,{No},{im({Yes})},{Yes},{im({No})});
});
});
};
%MailDown{
display({\nメールのダウンロードを開始します\n});
footnote({メールのダウンロード中});
case (COMPRESS={Yes}&&ARCHIVER<>{},
{Yes},
{
mkdir2(LOG2|{TITLE});
delfile(TEMP2|{fapxmail.eml});
type({READ NEW\n});
AllText;
dispoff(!DEBUG);
command(ARCHIVER|{ a }|LOG2|{NIFMAIL.lzh }|TEMP2|{*.eml});
command(ARCHIVER|{ a }|LOG2|{NAPMAIL.lzh }|TEMP2|{*.npb});
command({del }|TEMP2|{*.eml});
dispoff({No});
},
{No},
{
mkdir2(LOG2|{NIFMAIL});
File:=@crefile(LOG2|{NIFMAIL},{eml});
type({READ NEW\n});
AllText2;
});
setcdir(CDIR);
};
%BMail2 {
var n [2];
%m @noline(BMAILID)-1;
n:=m+1;
footnote({バイナリメールをダウンロードしています});
loop ({
n:=n-1;
%bmail1 @getline(BMAILID,n,1);
%distype {type({DOWN }|@getchar(bmail1,1,8)|{ PROT:BPL\n})};
distype;footnote(@head(@getchar(bmail1,27),CRLF)|
{(★中止 PUSH:[Cancel]→[No])});
loop ({
wait (Wtime1,{distype;im({Yes})},
{ (改行のみで終了)\n:},{im({No})})
});
%Fsize @tail(@laststr(128),{(BPLUS)\n},{バイト});
File:= @head(@getchar(bmail1,27),{ });
case(@nochar(@tail(File,{.}))>3||@nochar(@head(File,{.}))>8,
{Yes},{File:={}});
case (COMPRESS={Yes}&&ARCHIVER<>{},
{Yes},
{
delfile(TEMP2|{fapxmail.bml});
%timeP @linetime;
type(TEMP2|{fapxmail.bml\n});
wait (,,
{2:しない)\n:},
{
%timePS @linetime-timeP;
UPDNRATE({down},{fapxmail.bml},Fsize,timePS);
setcdir(TEMP);
%file @nowfile2(TEMP2|{fapxmail.bml},TEMP);
dispoff(!DEBUG);
command(ARCHIVER|{ a }|LOG2|
{NIFBMAIL.lzh }|TEMP2|file);
dispoff({No});
delfile(TEMP2|file);
write(LOG2|{TITLE\NIFBMAIL.TXT},
file|{ }|@getchar(bmail1,10));
setcdir(CDIR);
type({2\n});WAITABORT(Wtime2);
},
{E:終了)\n>}
);
},
{No},
{
mkdir2(LOG2|{Nifbmail});
case(File={}||@filechk(File)={Yes},{Yes},
{File:=@crefile(LOG2|{NIFBMAIL},{bml})});
%timeP @linetime;
type(LOG2|{NIFBMAIL\}|File|{\n});
wait(,,{2:しない)\n:},
{
%timePS @linetime-timeP;
UPDNRATE({down},File,Fsize,timePS);
write(LOG2|{NIFBMAIL\TITLE.TXT},
File|{ }|@getchar(bmail1,10));
type({2\n});WAITABORT(Wtime2);
},
{E:終了)\n>}
);
});
im(n>1);
});
};
%BMail {
var BMAILID [3000];
BMAILID:={};
type({LIST\n});
wait (Wtime2,{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{識別子\n},{});
loop ({
wait (Wtime2,{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{\n},
{
%line1 @body(@laststr(90),{\n},{\n});
case (@getchar(line1,1,1)={ }&&
@getchar(line1,30,1)={B},
{Yes},
{
BMcnt:=BMcnt-1;
BMAILID:=BMAILID|
@getchar(line1,72,8)|{ }|
@getchar(line1,7,16)|{ }|
@getchar(line1,32,40)|CRLF;
im({Yes});
},
{No},
{
case (@getchar(line1,49,8),
{E:終了)},
{wait(,,{>},);im({No})},
,
{
case (BMcnt<1,{Yes},
{
break;
WAITABORT(Wtime2);
im({No});
},
{No},{im({Yes})}
);
});
});
});
});
case(DEBUG,{Yes},{display({BMAILID=「}|BMAILID|{」\n})});
case(BMAILID<>{},{Yes},{BMail2});
};
%MAIL {
case (MLcnt,-1,
{type({MCHK\n});
wait (Wtime2,
{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{通)--},
{
MLcnt:=@head(@body(@laststr,{(未読分}),{通)-})+1-1;
WAITABORT(Wtime2);
},
{通届いています-},
{WAITABORT(Wtime2)},
{-あなた宛のメールはありません},
{WAITABORT(Wtime2)},
)
});
/*display({MLcnt:=}|MLcnt|{\n});*/
case (MLcnt>0,{Yes},
{
footnote({メールをダウンロードしています});
BMcnt:=0;
case (@GO({mail}),
{Yes},
{
MailDown;
case (BMcnt!=0&&MAILDOWN={Yes}&&
((BMAILDWN<>{Discount}||
(BMAILDWN={Discount}&&
@discntime(@daylong)))),
{Yes},{BMail});
});
});
};
/* 既読メールの削除処理 */
%DELmail{
display({既読メールの削除を行います\n});
footnote({既読メールの削除処理中});
case (@GO({mail}),
{Yes},
{
type({DEL ALL\n});
loop ({
wait (Wtime2,{\nホストの反応が鈍いよぉ~\n},
{\n*},
{
wait (Wtime2,{\nホストの反応が鈍いよぉ~\n},
{削除 (1:削除する 2:しない)\n:},
{type({1\n})}
);
im({Yes});
},
{\n },
{
wait (Wtime2,{\nホストの反応が鈍いよぉ~\n},
{削除 (1:削除する 2:しない)\n:},
{type({2\n})}
);
im({Yes});
},
{0:その他 E:終了)\n>},
{im({No})}
);
});
});
};
/* メールの送信簿を確認する */
%CHKsdl {
display({メール送信簿を確認します\n});
footnote({メール送信簿を確認しています});
case (@GO({mail}),
{Yes},
{
LOGforum({MAILSDL},{start});
type({SDL\n});
WAITABORT(Wtime2);
LOGforum({MAILSDL},{stop});
});
};
var BMcnt [2]; /* 未読バイナリメール数 */
var BMAILNO [2]; /* 未読バイナリメール番号 */
var File [12]; /* ダウンロードファイル名 */
var Type [1]; /* メールタイプ(Binary/Naplps) */
var TITLE [80]; /* メールの題名 */
case(MAILDEL,{Yes},{DELmail});
case(CHKSDL,{Yes},{CHKsdl});
MAIL;